package models

import (
	"time"
)

/**
 * @Author: zhaobin
 * @Description 商品模型
 * @Date: 2022-05-10 12:27
 */

type Goods struct {
	Id            int64       `json:"id"`                                                      // id
	Title         string      `json:"title"`                                                   // 商品名称
	SubTitle      string      `json:"sub_title"`                                               // 子标题
	CateId        int         `json:"cate_id"`                                                 // 类型id
	ClickCount    int         `json:"click_count"`                                             // 点击数量
	GoodsNumber   int         `json:"goods_number"`                                            // 商品库存
	Price         float64     `json:"price"`                                                   // 价格
	MarketPrice   float64     `json:"market_price"`                                            // 原价
	GoodsImg      string      `json:"goods_img"`                                               // 商品图片
	GoodsColor    string      `json:"goods_color"`                                             // 商品颜色
	GoodsContent  string      `json:"goods_content"`                                           // 商品内容
	IsHot         int         `json:"is_hot"`                                                  // 是否热销
	IsBest        int         `json:"is_best"`                                                 // 是否精品
	IsNew         int         `json:"is_new"`                                                  // 是否新品
	Sort          int         `json:"sort"`                                                    // 排序
	Status        *int        `json:"status"`                                                  // 状态
	CreatedAt     time.Time   `json:"created_at"`                                              // 列名是 `created_at`
	UpdatedAt     time.Time   `json:"updated_at"`                                              // 列名是 `updated_at`
	GoodsAttrList []GoodsAttr `json:"goods_attr_list" gorm:"foreignKey:GoodsId;references:Id"` // 商品参数列表
}

func (Goods) TableName() string {
	return "goods"
}

// GoodsParam 新增商品参数模型
type GoodsParam struct {
	Id             int64                `json:"id"`               // id
	Title          string               `json:"title"`            // 商品名称
	SubTitle       string               `json:"sub_title"`        // 子标题
	CateId         int                  `json:"cate_id"`          // 类型id
	ClickCount     int                  `json:"click_count"`      // 点击数量
	GoodsNumber    int                  `json:"goods_number"`     // 商品库存
	Price          float64              `json:"price"`            // 价格
	MarketPrice    float64              `json:"market_price"`     // 原价
	GoodsImg       string               `json:"goods_img"`        // 商品图片
	GoodsColor     string               `json:"goods_color"`      // 商品颜色
	GoodsContent   string               `json:"goods_content"`    // 商品内容
	IsHot          int                  `json:"is_hot"`           // 是否热销
	IsBest         int                  `json:"is_best"`          // 是否精品
	IsNew          int                  `json:"is_new"`           // 是否新品
	Sort           int                  `json:"sort"`             // 排序
	Status         *int                 `json:"status"`           // 状态
	GoodsAttrList  []GoodsCateAttribute `json:"goods_attr_list"`  // 商品参数列表
	GoodsImageList []string             `json:"goods_image_list"` // 商品图片列表
}

// PageParam 分页相关参数
type PageParam struct {
	Query    string `form:"query" json:"query"`
	PageNum  int    `form:"page_num" json:"query"`
	PageSize int    `form:"page_size" json:"query"`
}

// GoodsResponse 响应商品数据结构
type GoodsResponse struct {
	Total     int64   `json:"total"`
	GoodsList []Goods `json:"goods_list"`
}

// GoodsQueryParam 获取商品参数
type GoodsQueryParam struct {
	Query     string `form:"query" json:"query"`
	PageNum   int    `form:"page_num" json:"query"`
	PageSize  int    `form:"page_size" json:"query"`
	CateId    int64  `json:"cate_id" form:"cate_id"`
	GoodsType string `form:"goods_type" json:"goods_type"` // 商品类型，hot、best、new
}
